package com.chengh.nami.common.exception;

import com.chengh.nami.common.response.R;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 * @author chengh
 * 通用异常处理器
 */
@RestControllerAdvice
@Slf4j
public class NamiExceptionHandler {

    /**
     * 自定义通用异常的处理
     */
    @ExceptionHandler(BizException.class)
    public R<Void> bizExceptionHandler(com.chengh.nami.common.exception.BizException e){
        log.error("自定义通用异常,错误信息【{}】", e.getMessage(), e);
        return R.failed(e.getErrorCode(), e.getErrorMsg());
    }

    /**
     * 处理运行异常
     * @param e 异常
     * @return 返回通用异常
     */
    @ExceptionHandler(RuntimeException.class)
    public R<Void> runtimeExceptionHandler(RuntimeException e) {
        log.error("运行时异常，错误信息【{}】", e.getMessage(), e);
        return R.failed(e.getMessage());
    }
}
